/*
 * @(#)IXCMain.java	1.5 03/01/16
 *
 * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
 * 2 only, as published by the Free Software Foundation. 
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included at /legal/license.txt). 
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA 
 * 
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
 * Clara, CA 95054 or visit www.sun.com if you need additional
 * information or have any questions. 
 *
 */

package IXCDemo;

import java.io.IOException;
import com.sun.xlet.XletLifecycleHandler;
import com.sun.xlet.XletManager;

/**
 * Main launching class.  This is a minimalistic test that hard-codes
 * the launching of two Xlets.  It then waits 20 seconds, destroys the
 * client, waits 5 seconds, destroys the server, and terminates.
 */

public class IXCMain {
    private static void sleep(long delay) {
        long goal = System.currentTimeMillis() + delay;
        while (delay > 0) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ignored) {}
            delay = goal - System.currentTimeMillis();
        }
    }
    
    public static void main(String args[]) {
        XletLifecycleHandler client = null;
        XletLifecycleHandler server = null;
        try {
            String classpath = System.getProperty("java.class.path", ".");
            // XletClassLoader does not see the classpath anymore
            String path[] = {classpath};
            //String path2[] = {"IXCDemo/ixcXlets/serverXlet", classpath};
            client = XletManager.createXlet("IXCDemo.ixcXlets.clientXlet.PlaneClient", path, null);
            System.out.println("Manager:  client created");
            server = XletManager.createXlet("IXCDemo.ixcXlets.serverXlet.PlaneServer", path, null);
            System.out.println("Manager:  server created");
        } catch (IOException ex) {
            ex.printStackTrace();
            System.exit(1);
        }
        client.postInitXlet();
        server.postInitXlet();
        client.postStartXlet();
        sleep(1000);
        server.postStartXlet();
        sleep(20000);
        client.postDestroyXlet(true);
        System.out.println("Manager:  client destroyed");
        client = null;
        sleep(5000);
        server.postDestroyXlet(true);
        System.out.println("Manager:  server destroyed");
        System.out.println("Manager exiting");
        server = null;
    }
}
